
#include <QCoreApplication>
#include <QTextStream>
#include <QDebug>
#include <QTimer>

#include <QDBusConnection>
#include <QObject>
#include <../DHelloWorld/DHelloWorld.h>


QDBusConnection getSystemBus()
{
    return QDBusConnection::systemBus();
}
QDBusConnection getSessionBus()
{
    return QDBusConnection::sessionBus();
}

void regular_register()
{
    //1. 申请一个总线连接
    QDBusConnection sessionBus = getSessionBus();

    // DHelloWorld hello;

    if (sessionBus.isConnected())
    {
        LogUtils::log("sessionBus is connected");
    }

    //2. 在总线连接上挂载服务，这样其他进程才能请求该服务
    if (sessionBus.registerService("com.qt.examples.DHelloWorld"))
    {
        LogUtils::log("sessionBus is registerService: com.qt.examples.DHelloWorld");
    }

    //3. 在挂载的服务上注册一个执行服务的对象
    if (sessionBus.registerObject("/", new DHelloWorld, QDBusConnection::ExportAllSlots | QDBusConnection::ExportAllSignals | QDBusConnection::ExportAllContents))
    {
        LogUtils::log("sessionBus is registerObject: DHelloWorld");
    }
}

void fast_register()
{
    QDBusConnection::sessionBus().registerObject("/fast", new DHelloWorld(), QDBusConnection::ExportAllSlots | QDBusConnection::ExportAllSignals);
}

int main(int argc, char *argv[])
{
    QCoreApplication a(argc, argv);

    regular_register();

    // fast_register();

    return a.exec();
}

